Cloud computing is now ubiquitous in both enterprise and consumer settings. In cloud computing, data and applications are accessed over the Internet instead of requiring local storage and compute resources, and instead of owning all the hardware where the data resides and the software applications execute, an enterprise or a consumer (the “client” or “tenant”) utilizes hardware and software resources supplied by a cloud computing provider to store the data and run the applications. Relying on sharing of resources among numerous clients, the cloud computing infrastructure (sometimes referred to as Infrastructure as a service (IaaS)) satisfies elastic demand spikes and achieves economies of scale thus becoming popular in various industries. In an IaaS model, computing resources are often offered as a number of virtual machines to a client requesting computing resources, and a hypervisor manages the offered virtual machines.
The IaaS offerings of cloud computing providers come in a multitude of sizes and capabilities. Some cloud computing providers offer high computing power processors so that a virtual machine in a single processor may provide required computing resource for a client's computing need. Others offer lower computing power processors in a compact packaging so that the combined lower computing power processors may offer enough computing resources for a client's computing need. The different offerings of the cloud computing providers are often advertised to clients. Yet, it is still challenging for a client to determine which offerings are most suitable for particular applications, particularly for demanding applications such as video processing.
For video processing, a client may have different media contents to be processed using a variety of media processing operations, and these different contents and operations often require significantly different computational resources. For example, media content consisting of talking heads takes much less processing power than a live broadcast consisting of complex content such as auto racing. Also, the required computational resources also depend on the type of computing resources offered. For example, some media processing operations work well with an offering integrating central processing units (CPUs) and graphics processing units (GPUs) so that these media contents require less overall computing resources than another offering of CPUs only. Yet, the intuitive understanding of the relationship between media content, media processing operations, and required processing power is insufficient to make simple quantitative determination as of how much processing power is needed for a set of media content and media processing operations. Thus, a client typically overestimates the computing resources required when configuring a cloud computing provider to process video in order to have enough computing resource for the whole video processing session. The processing power requirement is based on the worst case scenario, thus it can be inefficient for the client to process media contents in a cloud environment in this manner.